package myky.com.doctorapp.utils;

import android.util.Log;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.Iterator;

/**
 * Created by 61904 on 2017/7/5.
 */
public class ErrorCodeUtils {

    public static String[] errors = {


            "服务未通过认证",
            "未知的服务",
            "服务未开放，不允许访问",
            "服务的url不可用",
            "不合法的请求",
            "令牌已经不可用",
            "用户名已经存在",
            "密码输入错误",
            "用户名不存在",
            "表单输入项不能为空",
            "表单输入项格式不合法",
            "用户已经锁定 ",
            "两次密码不一致",
            "工作流超时",
            "没有提交任何数据",
            "参数名称错误",
            "表示未知的表单项错误",
            "请求的数据为空 ",
            "service参数为空",
            "st（令牌）参数不合法 ",
            "服务令牌已经过期",
            "未知的错误",
            "TGT令牌已经过期 ",
            "不可用的查询参数 ",
            "没有登录",   //在没有登录状态下进行登出操作返回的错误码
            "您的用户名在另一台设备已登录，请先退出再登录",
            "重复的提交或请求",
            "名称为userId请求参数为空或者错误",
            "服务器出错了",
            "不是请求推送消息的协议",
            "请求推送的消息为空",
            "手机认证码错误",
            "服务未注册",
            "医生没有找到",
            "表单文件格式错误",//必须为text/html ",
            "表单文件长度错误",//即contentLen<1或者大于1M ",
            "表单文件的编码不支持",//注意只支持UTF-8和GBK编码",
            "操作超时",
            "手机号已经存在",
            "手机号未注册",
            "需要登录",
            "用户资料不完善",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "暂未使用",
            "手机号码没有注册或已经失效 ",
            "手机验证码错误",
            "获取验证码太频繁，请24小时后再试",
            "手机号码格式错误，发送验证码失败",
            "发送手机验证码出现未知错误",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服",
            "服务异常，请稍后再试或联系客服"

    };


    /**
     * 通过错误信息获取错误码
     *
     * @param sb
     * @return
     */
    public static int getErrorCode(String sb) {
        int errorCode = -1;
        try {
            JSONObject object = new JSONObject(sb);
            JSONObject object1 = object.getJSONObject("payLoad");
            Iterator iterator = object1.keys();

            while (iterator.hasNext()) {
                String key = iterator.next() + "";
                Log.i("out", "key.." + key);
                if (key.equals("errorCode")) {
                    errorCode = object1.getInt("errorCode");
                } else if (key.equals("errorCodes")) {
                    JSONObject jsonObject = object1.getJSONObject("errorCodes");
                    Iterator iterator2 = jsonObject.keys();
                    while (iterator2.hasNext()) {
                        String key2 = iterator2.next() + "";
                        errorCode = jsonObject.getInt(key2);
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        Log.i("out", "errorCode.." + errorCode);

        return errorCode;
    }

    /**
     * 通过错误码获取错误信息
     *
     * @param errorCode
     * @return
     */
    public static String getErrorMsg(int errorCode) {
        String errorMsg = "";
        if (errorCode < errors.length) {
            errorMsg = errors[errorCode];
        } else {
            errorMsg = "错误信息异常,请稍后再试或联系客服";
        }
        Log.i("out", "errorMsg.." + errorMsg);
        return errorMsg;
    }


    /*错误代码*/

     /*


     enum ErrorCode {
          serviceUnauthorized = 0,//服务未通过认证
          serviceUnknowError = 1,//未知的服务
          serviceAccessUnallowable = 2,//服务未开放，不允许访问
          serviceUrlIsInvalid = 3,//服务的url不可用
          invalidRequest = 4,//不合法的请求
          invalidTicket = 5,//令牌已经不可用
          usernameExist = 6,//用户名已经存在
          passwordError = 7,//密码输入错误
          userIsNull = 8,//用户名不存在
          formItemCanNotBeNull = 9,//表单输入项不能为空
          formItemPatternInvalid = 10,//表单输入项格式不合法
          userIsLocked = 11,//用户已经锁定
          confirmPasswordError = 12,//两次密码不一致
          workFlowTimeout = 13,//工作流超时
          didNotSubmitAnyData = 14,//没有提交任何数据
          unknowParamName = 15, //表示未知的参数名称，即参数名称错误
          unknowFormItemError = 16, //表示未知的表单项错误
          nodata = 17,//请求的数据为空
          serviceParamIsBlank = 18,//service参数为空
          stParamIsIllegal = 19,//st（令牌）参数不合法
          serviceTicketExpired = 20, //服务令牌已经过期
          unknowError = 21, //未知的错误
          tgtExpired = 22, //TGT令牌已经过期
          invalidParam = 23, //不可用的查询参数
          unlogin = 24, //没有登录，在没有登录状态下进行登出操作返回的错误码
          repeatLogin = 25, //重复登录
          repeatRequest = 26, //重复的提交或请求
          requestParamsOfUseridIsBlankOrError = 27, //名称为userid请求参数为空或者错误
          serverOccurException = 28, //服务器出错了
          isNotMessageProtocol = 29, //不是请求推送消息的协议
          messageIsNull = 30, // 请求推送的消息为空
          smsCodeIsError = 31, //手机认证码错误
          serviceUnRegister = 32, //服务未注册
          doctorNotFind = 33, //医生没有找到
          formFileTypeError = 34, //表单文件格式错误，必须为text/html
          formFileLengthError = 35, //表单文件长度错误即contentLen<1或者大于1M
          formFileCharsetIsUnSupport = 36, //表单文件的编码不支持，注意只支持UTF-8和GBK编码
          operateTimeout = 37,//操作超时
          moblileIsExist = 38,//手机号已经存在
          moblileIsUnRegister = 39,//手机号未注册
          needLogin = 40,//需要登录
          userCardIsNotComplete = 41,//用户资料不完善
          drGroupTreeError  = 42,//医助tree功能表选择超范围
          treeEmpty = 43,//功能表选择为空
          drGroupExist = 44, //所选医助的tree表已经存在
          wxCodeInvalid = 45, //微信的登陆码不合法
          remoteStatusChangeFailed=46,//远程状态变化失败
          syncFaildKeyOrTimeError=47,//数据同步失败，key不存在，
          sendsmsErrorunkonw = 100, //发送手机验证码出现未知错误
          mobileillegal = 99, //手机号格式不正确
          limitControl = 98, //达到次数限制
          varifysmscodeError = 97; //手机验证码输入错误，没有通过验证
          phonenumbernotreg = 96; //手机号码没有注册或已经失效

          operationFailure = 1000; //操作（创建或更新）失败
          parameterUnknownError=1001; //传参错误或传参为空
          notFoundData=1002; //数据为空
          notPermission=1003; //没有权限

          imageCodeIsNull=1019; //请输入图片验证码,
          imageCodeError=1020; //图片验证码错
          serviceException=1021; //服务异常，请稍后再试或联系客
          accoutNotExist=10022; //用户名不存
          smsCodeIsNull=1004; //请填写手机验证
          smsCodeError=1005; // 手机验证码错
          smsCodeExpired=1006; //手机验证码已过
          sendSmsCodeFailed=1007; //发送验证码失败，稍候重
          sendSmsCodeMoreThan10=1008; //该手机获取验证码已超10次，请24小时后重
          sendSmsCodeFrequently=1009; //获取验证码太频繁，请1小时后再
          mobleIsInValid=1011; //手机号码格式错误，发送验证码失
          needPassword=1012; //请设置登录密
          passwordLengthError=1013; //密码需6-16个字
          passwordFormatError=1014; //密码格式错误，字母、数字和符号两种以及以上的组
     }
     */


}
